package com.xinbochuang.machine.admin.domain.system;

import com.baomidou.mybatisplus.annotation.KeySequence;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.xinbochuang.machine.common.annotation.Excel;
import com.xinbochuang.machine.common.domain.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.List;

/**
 * 出库申请
 *
 * @author 黄晓鹏
 * @date 2020-09-29
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("SYS_STOREHOUSE_OUT")
@KeySequence(value = "SYS_STOREHOUSE_OUT_SEQ", clazz = Integer.class)
public class SysStorehouseOut extends BaseEntity {

    private static final long serialVersionUID = 1L;

    @TableId("OUT_ID")
    @Excel(name = "主键id", height = 20)
    private Integer outId;

    /**
     * 部门id
     */
    @TableField("DEPT_ID")
    private Integer deptId;

    /**
     * 部门名称
     */
    @TableField("DEPT_NAME")
    @Excel(name = "部门名称", height = 20)
    private String deptName;

    /**
     * 出库人id
     */
    @TableField("USER_ID")
    private Integer userId;

    /**
     * 出库人名称
     */
    @TableField("USER_NAME")
    @Excel(name = "出库人", height = 20)
    private String userName;

    /**
     * 入库信息id
     */
    @TableField("IN_ID")
    private Integer inId;

    /**
     * 物品名称
     */
    @TableField("NAME")
    @Excel(name = "物品名称", height = 20)
    private String name;

    /**
     * 规格型号
     */
    @TableField("MODEL")
    @Excel(name = "规格型号", height = 20)
    private String model;

    /**
     * 单位id（字典：sys_storehouse_unit）
     */
    @TableField("UNIT_ID")
    private Integer unitId;

    /**
     * 数量
     */
    @TableField("NUM")
    @Excel(name = "数量", height = 20)
    private Integer num;

    /**
     * 生成码
     */
    @TableField("CODE")
    private String code;

    /**
     * 二维码
     */
    @TableField("QR_CODE")
    private String qrCode;

    /**
     * 出库去向
     */
    @TableField("OUT_PLACE")
    private String outPlace;

    /**
     * 出库时间
     */
    @TableField("OUT_TIME")
    private String outTime;

    /**
     * 状态（字典：sys_storehouse_status）
     */
    @TableField("STATUS")
    private String status;

    /**
     * 删除标识
     */
    @TableField("DEL_FLAG")
    private String delFlag;

    /**
     * 单位名称
     */
    @TableField(exist = false)
    private String unitName;

    /**
     * 二级清单列表
     */
    @TableField(exist = false)
    private List<SysStorehouseOutSecond> children;

    /**
     * 查询类型，有值则查询状态不为待办的列表
     */
    @TableField(exist = false)
    private String type;

    /**
     * 最大数量
     */
    @TableField(exist = false)
    private Integer max;

    /**
     * 一级清单列表
     */
    @TableField(exist = false)
    private List<SysStorehouseOther> otherList;

    /**
     * 审核人
     */
    @TableField("APPROVE_BY")
    private String approveBy;

    /**
     * 审核时间
     */
    @TableField("APPROVE_TIME")
    private String approveTime;

    /**
     * 确认人
     */
    @TableField("CONFIRM_BY")
    private String confirmBy;

    /**
     * 确认时间
     */
    @TableField("CONFIRM_TIME")
    private String confirmTime;

    /**
     * 创建时间
     */
    @TableField("CREATE_TIME")
    @Excel(name = "申请时间", height = 20)
    private String createTime;

}
